package lol.clann.minecraft.springboot.api.annotation.command;

import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *
 * @author pyz
 * @date 2019/5/6 10:30 PM
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface CommandDefine {
    /**
     * 跟指令
     *
     * @return
     */
    String name();

    /**
     * 同一个根指令,出现多个CommandDefine定义时,以order最小的为准
     * @return
     */
    int order() default 0;

    /**
     * 指令前缀
     *
     * @return
     */
    String mapping() default "";

    /**
     * 此类下的所有指令,都需要这个权限才能执行
     *
     * @return
     */
    String permission() default "";

    String description() default "";

    String usageMessage() default "";

    String[] aliases() default {};
}
